/////////////////////////////////////////////////////////////////////////
///@file  HTFTSTraderSPI.h
///@brief 定义极速柜台交易API接口应答
///@author
///@date
/////////////////////////////////////////////////////////////////////////

#pragma once

#include "HTFTSTraderAPIStruct.h"

namespace HTFTS
{
    class HTFTSTraderSPI
    {
    public:

        virtual ~HTFTSTraderSPI() = default;

        ///@brief 当客户端与交易后台建立起通信连接时（客户未登录前），该方法被调用。
        virtual void OnConnected() {}

        ///@brief 当客户端与交易后台通信连接断开时，该方法被调用。 目前不支持在改函数体中，调用DestroyTraderAPI接口
        ///@param connectStatus  当前api的重连状态
        ///@param pErrorInfo     断链的原因
        virtual void OnDisconnected(ReConnectStatus reConnectStatus, ErrorInfoField* pErrorInfo) {}

        ///@brief 系统信息变更通知
        /// @param  pSysInfo                            系统信息
        /// @param  pErrorInfo                          错误信息回复
        virtual void OnTradeSysInfo(TradeSysInfo* pSysInfo, ErrorInfoField* pErrorInfo) {}

        ///@brief API清流通知
        virtual void OnLocalCacheReset() {}

        ///@brief 系统信息请求应答
        /// @param  pSysInfo                            系统信息
        /// @param  pErrorInfo                          错误信息回复
        virtual void OnRspQrySysInfo(TradeSysInfo* pSysInfo, ErrorInfoField* pErrorInfo, RequestIDType reqId) {}


        /// @brief 查询系统交易日期应答
        /// @param  pTradeDateInfo                      交易日期
        /// @param  pErrorInfo                          错误信息回复
        virtual void RspQrySysTradeDateInfo(TradeDateInfo* pTradeDateInfo, ErrorInfoField* pErrorInfo, RequestIDType reqId) {}

        /// @brief  登录请求应答
        /// @param  pRspUserLogin                        登录应答
        /// @param  pErrorInfo                            错误信息回复
        /// @param  reqId                                请求编号类型
        virtual void OnRspUserLogin(RspUserLoginField* pRspUserLogin, ErrorInfoField* pErrorInfo, RequestIDType reqId) {}

        /// @brief  股东代码返回信息
        /// @param  pUser                               客户信息
        /// @param  pRspFundTransField                  股东代码返回信息
        /// @param  reqId                               请求编号类型
        /// @param  isLast                              后续包结束标记
        virtual void OnRspHolderNoField(RspUser* pUser, RspHolderNoField *pRspHolderNoField, RequestIDType reqId, bool isLast) {}

        /// @brief  登出请求应答
        /// @param  pRspUserLogout                      登出应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        virtual void OnRspUserLogout(RspUserLogoutField* pRspUserLogout, ErrorInfoField* pErrorInfo, RequestIDType reqId) {}

        /// @brief  修改密码应答
        /// @param  pUser                               客户信息
        /// @param  pErrorInfo                            错误信息回复
        /// @param  reqId                                请求编号类型
        virtual void OnRspUserPasswordUpdate(RspUser* pUser, ErrorInfoField* pErrorInfo, RequestIDType reqId) {}

        /// @brief  资金查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryTradingAccount                资金查询应答
        /// @param  pErrorInfo                            错误信息回复
        /// @param  reqId                                请求编号类型
        /// @param  isLast                                响应结束标记
        virtual void OnRspQryAccount(RspUser* pUser, RspQryAccountField* pRspQryTradingAccount, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  资金可用查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspCustFundInfoField                资金查询应答
        /// @param  pErrorInfo                            错误信息回复
        /// @param  reqId                                请求编号类型
        /// @param  isLast                                响应结束标记
        virtual void OnRspCustFundInfo(RspUser* pUser, RspCustFundInfoField* pRspCustFundInfoField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  持仓查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryInvestorPosition                持仓查询应答
        /// @param  pErrorInfo                            错误信息回复
        /// @param  reqId                                请求编号类型
        /// @param  isLast                                响应结束标记
        virtual void OnRspQryInvestorPosition(RspUser* pUser, RspQryInvestorPositionField* pRspQryInvestorPosition, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  委托查询应答(单笔委托和批量委托)
        /// @param  pUser                               客户信息
        /// @param  pRspQrySingleOrder                    委托查询应答
        /// @param  pErrorInfo                            错误信息回复
        /// @param  reqId                                请求编号类型
        /// @param  isLast                                响应结束标记
        virtual void OnRspQryOrder(RspUser* pUser, RspQryOrderField* pRspQrySingleOrder, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  成交查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryTrade                        成交查询应答
        /// @param  pErrorInfo                            错误信息回复
        /// @param  reqId                                请求编号类型
        /// @param  isLast                                响应结束标记
        virtual void OnRspQryTrade(RspUser* pUser, RspQryTradeField* pRspQryTrade, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  成交汇总查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryTrade                        成交汇总查询应答
        /// @param  pErrorInfo                            错误信息回复
        /// @param  reqId                                请求编号类型
        /// @param  isLast                                响应结束标记
        virtual void OnRspQryTradeSummary(RspUser* pUser, RspQryTradeSummaryField* pRspQryTradeSummary, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  ETF查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryETFStatus                    ETF查询应答
        /// @param  pErrorInfo                            错误信息回复
        /// @param  reqId                                请求编号类型
        /// @param  isLast                                响应结束标记
        virtual void OnRspQryETFStatus(RspUser* pUser, RspQryETFStatusField* pRspQryETFStatus, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  ETF篮子查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryETFBasketComponent            ETF篮子查询应答
        /// @param  pErrorInfo                            错误信息回复
        /// @param  reqId                                请求编号类型
        /// @param  isLast                                响应结束标记
        virtual void OnRspQryETFBasketComponent(RspUser* pUser, RspQryETFBasketComponentField* pRspQryETFBasketComponent, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  私有流订阅成功推送
        /// @param  pUser                               客户信息
        /// @param  pErrorInfo                            错误信息回复
        /// @param  reqId                                请求编号类型
        virtual void OnRtnSubscribe(RspUser* pUser, ErrorInfoField* pErrorInfo) {}

        /// @brief  报单推送
        /// @param  pUser                               客户信息
        /// @param  pOrderFiled                            报单信息
        /// @param  reqId                                请求编号类型
        virtual void OnRtnOrder(RspUser* pUser, OrderField* pOrderField, ErrorInfoField* pErrorInfoField, RequestIDType reqId) {}

        /// @brief  查询子账户及资金
        /// @param  pUser                               客户信息
        /// @param  pRspQrySubAccountAndFundField       查询子账户及资金应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        /// @param  isLast                              响应结束标记
        virtual void RspQrySubAccountAndFund(RspUser* pUser, RspQrySubAccountAndFundField* pRspQrySubAccountAndFundField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  委托成交推送
        /// @param  pOrderExecutionField                成交信息
        virtual void OnRtnOrderExecution(RspUser* pUser, OrderExecutionField* pOrderExecutionField, RequestIDType reqId) {}

        /// @brief  查询银行账户信息
        /// @param  pUser                               客户信息
        /// @param  pRspQryCustBankAcc                银行账户信息查询结果
        /// @param  pErrorInfo                        错误信息回复
        /// @param  reqId                            请求编号类型
        /// @param  isLast                            响应结束标记
        virtual void OnRspQryCustBankAcc(RspUser* pUser, RspQryCustBankAccField* pRspQryCustBankAcc, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  转账申请应答
        /// @param  pUser                               客户信息
        /// @param  pRspFundTransField                转账返回信息
        /// @param  pErrorInfo                        错误信息回复
        /// @param  reqId                                请求编号类型
        virtual void OnRspFundTrans(RspUser* pUser, RspFundTransField *pRspFundTransField, ErrorInfoField* pErrorInfo, RequestIDType reqId) {}


        /// @brief  新股额度查询回调
        /// @param  pUser                           客户信息
        /// @param  RspQryNewStockLimitField         新股额度查询
        /// @param  pErrorInfo                        错误信息回复
        /// @param  reqId                            请求编号类型
        /// @param  isLast                            响应结束标记
        virtual void OnRspNewStockLimit(RspUser* pUser, RspQryNewStockLimitField* pRspQryNewStockLimitField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief    证券信息查询回调
        /// @param  pUser                           客户信息
        /// @param    pRspQrySecField                    证券查询
        /// @param  pErrorInfo                        错误信息回复
        /// @param  reqId                            请求编号类型
        /// @param  isLast                            响应结束标记
        virtual void OnRspSecInfo(RspUser* pUser, RspQrySecField* pRspQrySecField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  股票查询（含当日买卖信息）应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryPositionMarketInfo            持仓市值浮动盈亏等综合查询应答
        /// @param  pErrorInfo                            错误信息回复
        /// @param  reqId                                请求编号类型
        virtual void OnRspQryStockInfo(RspUser* pUser, RspQryStockInfoField* pRspQryStockInfoField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  账号校验
        /// @param  pUser                           客户信息
        /// @param  pRspUsrAccCheck    账号校验
        /// @param  pErrorInfo                        错误信息回复
        /// @param  reqId                            请求编号类型
        virtual void OnRspUsrAccCheck(RspUsrAccCheckField*pRspUsrAccCheck, ErrorInfoField* pErrorInfo, RequestIDType ReqId) {}

        /// @brief  港股历史成交查询
        /// @param  pUser                           客户信息
        /// @param  pRspCustEvaluateStatus    港股历史成交查询
        /// @param  pErrorInfo                        错误信息回复
        /// @param  reqId                            请求编号类型
        /// @param  isLast                            响应结束标记
        virtual void OnRspHKHisDoneInfo(RspUser *pUser, RspQryHKHisDoneField*pRspCustEvaluateStatus, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

    public: ///-------------------融资融券业务独有接口-----------------------

        /// @brief  还款请求应答
        /// @param  pUser                           客户信息
        ///pRspCreditPayBackField                   还款请求
        /// @param  pErrorInfo                        错误信息回复
        /// @param  reqId                            请求编号类型
        virtual void OnRspCreditPayBack(RspUser* pUser, RspCreditPayBackField *pRspCreditPayBackField, ErrorInfoField* pErrorInfo, RequestIDType reqId) {}

        /// @brief 融券负债查询应答
        /// @param  pUser                           客户信息
        /// @param  pRspCreditPositionField         融券负债
        /// @param  pErrorInfo                        错误信息回复
        /// @param  reqId                            请求编号类型
        /// @param  isLast                            响应结束标记
        virtual void OnRspQryCreditPosition(RspUser* pUser, CreditPositionField *pRspCreditPositionField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}


        /// @brief  融券仓单查询应答
        /// @param  pUser                           客户信息
        /// @param  pRspCreditPositionDetailField   融券仓单
        /// @param  pErrorInfo                        错误信息回复
        /// @param  reqId                            请求编号类型
        /// @param  isLast                            响应结束标记
        virtual void OnRspQryCreditPositionDetail(RspUser* pUser, CreditPositionDetailField *pRspCreditPositionDetailField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}


        /// @brief  融资负债查询应答
        /// @param  pUser                           客户信息
        /// @param  pRspCreditAccountField     融资负债持仓
        /// @param  pErrorInfo                        错误信息回复
        /// @param  reqId                            请求编号类型
        virtual void OnRspQryCreditAccount(RspUser* pUser, CreditAccountField *pRspCreditAccountField, ErrorInfoField* pErrorInfo, RequestIDType reqId) {}


        /// @brief  融资仓单查询应答
        /// @param  pUser                           客户信息
        /// @param  pRspCreditAccountDetailField       融资仓单
        /// @param  pErrorInfo                        错误信息回复
        /// @param  reqId                            请求编号类型
        /// @param  isLast                            响应结束标记
        virtual void OnRspQryCreditAccountDetail(RspUser* pUser, CreditAccountDetailField *pRspCreditAccountDetailField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  查询客户信用信息应答
        /// @param  pUser                           客户信息
        /// @param  pRspQryUserCreditInfoField       客户信用信息
        /// @param  pErrorInfo                        错误信息回复
        /// @param  reqId                            请求编号类型
        /// @param  isLast                            响应结束标记
        virtual void OnRspQryUserCreditInfo(RspUser* pUser, RspQryUserCreditInfoField* pRspQryUserCreditInfoField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  查询信用标的信息应答
        /// @param  pUser                           客户信息
        /// @param  pRspQryCreditUnderlyingStockField       信用标的信息
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQryCreditUnderlyingStock(RspUser* pUser, CreditUnderlyingStockField* pRspQryCreditUnderlyingStockField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  查询投票股东大会议案信息应答
        /// @param  pUser                           客户信息
        /// @param  pRspQryVoteShareHolderMeetingInfoField       投票股东大会议案信息
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspVoteShareHolderMeetingInfo(RspUser* pUser, RspQryVoteShareHolderMeetingInfoField* pRspQryVoteShareHolderMeetingInfoField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}


        /// @brief  查询客户保底融券额度应答
        /// @param  pUser                                   客户信息
        /// @param  pRspQryUserReserveCreditStockField       客户保底额度
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQryUserReserveCreditStock(RspUser* pUser, UserReserveCreditStockField* pRspQryUserReserveCreditStockField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  查询证券公允价格应答
        /// @param  pUser                                   客户信息
        /// @param  pRspQrySecurityAssetPriceInfoField       融资仓单
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQrySecurityAssetPriceInfo(RspUser* pUser, RspQrySecurityAssetPriceInfoField* pRspQrySecurityAssetPriceInfoField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  查询保证金等综合信息应答
        /// @param  pUser                                 客户信息
        /// @param  pRspQryComprehensiveInfoField         查询保证金等综合信息应答
        /// @param  pErrorInfo                              错误信息回复
        /// @param  reqId                                  请求编号类型
        virtual void OnRspQryComprehensiveInfo(RspUser* pUser, RspQryComprehensiveInfoField* pRspQryComprehensiveInfoField, ErrorInfoField* pErrorInfo, RequestIDType reqId) {}

        /// @brief  融资融券委托试算查询应答
        /// @param  pUser                           客户信息
        /// @param  pRspQryCreditTradeForTrialField       融资融券委托试算查询应答
        /// @param  pErrorInfo                              错误信息回复
        /// @param  reqId                                  请求编号类型
        /// @param  isLast                            响应结束标记
        virtual void OnRspQryCreditTradeForTrial(RspUser* pUser, RspQryCreditTradeForTrialField* pRspQryCreditTradeForTrialField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief    融券负债变动回调
        /// @param  pUser                           客户信息
        /// @param    pRtnCreditPsitionField                   融券负债
        virtual void OnRtnCreditPosition(RspUser* pUser, CreditPositionField* pRtnCreditPsitionField) {}

        /// @brief  融券仓单变动回调
        /// @param  pUser                           客户信息
        /// @param  pRtnCreditHoldField                      融券仓单
        virtual void OnRtnCreditPositionDetail(RspUser* pUser, CreditPositionDetailField *pRtnCreditPositionDetailField) {}

        /// @brief    融资负债变动回调
        /// @param  pUser                           客户信息
        /// @param    pRtnCreditAccountField       融资负债持仓
        virtual void OnRtnCreditAccount(RspUser* pUser, CreditAccountField *pRtnAccountField) {}

        /// @brief    融资仓单变动回调
        /// @param  pUser                           客户信息
        /// @param    pRtnCreditAccountDetailField       融资仓单
        virtual void OnRtnCreditAccountDetail(RspUser* pUser, CreditAccountDetailField *pRtnCreditAccountDetailField) {}

        /// @brief  信用标的信息变动回调
        /// @param  pUser                           客户信息
        /// @param  pRtnCreditUnderlyingStockField       信用标的信息
        virtual void OnRtnCreditUnderlyingStock(RspUser* pUser, CreditUnderlyingStockField* pRtnCreditUnderlyingStockField) {}

        /// @brief  客户保底融券额度变动回调
        /// @param  pUser                           客户信息
        /// @param  pRtnUserReserveCreditStockField         客户保底额度
        virtual void OnRtnUserReserveCreditStock(RspUser* pUser, UserReserveCreditStockField* pRtnUserReserveCreditStockField) {}

        /// @brief  专户公共券池数量查询
        /// @param  pUser                           客户信息
        /// @param  pRspQryCmnStkPoolNum          专户公共券池数量
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQryCmnStkPoolNum(RspUser* pUser, RspQryCmnStkPoolNumField *pRspQryCmnStkPoolNum, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool islast) {}

        /// @brief  券源行情查询
        /// @param  pUser                           客户信息
        /// @param  pRspQryStkSrcQuotes          券源行情
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQryStkSrcQuotes(RspUser* pUser, RspQryStkSrcQuotesField *pRspQryStkSrcQuotes, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  客户锁券申请
        /// @param  pUser                           客户信息
        /// @param  pRspLockStkOrder          客户锁券
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        virtual void OnRtnLockStkOrder(RspUser* pUser, RspLockStkOrderField *pRspLockStkOrder, ErrorInfoField* pErrorInfo, RequestIDType reqId) {}

        /// @brief  锁券委托查询
        /// @param  pUser                           客户信息
        /// @param  pRspQryLockStkOrder          锁券委托
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQryLockStkOrder(RspUser* pUser, RspQryLockStkOrderField *pRspQryLockStkOrder, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  私用额度资格查询
        /// @param  pUser                           客户信息
        /// @param  pRspQryPrivateQuotaQuality          私用额度资格
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQryPrivateLimitQualify(RspUser* pUser, RspQryPrivateLimitQualifyField *pRspQryPrivateQuotaQuality, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  私用券源产品查询
        /// @param  pUser                           客户信息
        /// @param  pRspQryPrivateStkSrcProduct     私用券源产品
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQryPrivateStkSrcProduct(RspUser* pUser, RspQryPrivateStkSrcProductField *pRspQryPrivateStkSrcProduct, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  最大可预约额度查询
        /// @param  pUser                           客户信息
        /// @param  pRspQryMaxSubscribableLimit     最大可预约额度查询
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQryMaxSubscribableLimit(RspUser* pUser, RspQryMaxSubscribableLimitField *pRspQryMaxSubscribableLimit, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  私用券源预约申请
        /// @param  pUser                           客户信息
        /// @param  pRspPrivateStkSrcSubscriptionOrder     私用券源预约
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        virtual void OnRspPrivateStkSrcSubscriptionOrder(RspUser* pUser, RspPrivateStkSrcSubscriptionOrderField *pRspPrivateStkSrcSubscriptionOrder, ErrorInfoField* pErrorInfo, RequestIDType reqId) {}

        /// @brief  私用券源预约撤单
        /// @param  pUser                           客户信息
        /// @param  pRspPrivateStkSrcSubscriptionCancle    私用券源预约撤单
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        virtual void OnRspPrivateStkSrcSubscriptionCancle(RspUser* pUser, RspPrivateStkSrcSubscriptionCancleField *pRspPrivateStkSrcSubscriptionCancle, ErrorInfoField* pErrorInfo, RequestIDType reqId) {}

        /// @brief  当日预约申请查询
        /// @param  pUser                           客户信息
        /// @param  pRspQryCurrentSubscriptionOrder    当日预约申请
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQryCurrentSubscriptionOrder(RspUser* pUser, RspQryCurrentSubscriptionOrderField *pRspQryCurrentSubscriptionOrder, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief   当日预约成交查询
        /// @param  pUser                           客户信息
        /// @param  pRspQryCurrentSubscriptionDone     当日预约成交查询
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQryCurrentSubscriptionDone(RspUser* pUser, RspQryCurrentSubscriptionDoneField *pRspQryCurrentSubscriptionDone, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  未了结预约合约查询
        /// @param  pUser                           客户信息
        /// @param  pRspQryOpenSubscriptionDone    未了结预约合约查询
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQryUndoneSubscription(RspUser* pUser, RspQryUndoneSubscriptionField *pRspQryOpenSubscriptionDone, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  查询信用账户与普通账户对应关系
        /// @param  pUser                           客户信息
        /// @param  pRspQryUsrAccountRelation    查询信用账户与普通账户对应关系
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQryUsrAccountRelation(RspUser *pUser, RspQryUsrAccountRelationField*pRspQryUsrAccountRelation, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief  查询资券变动流水
        /// @param  pUser                           客户信息
        /// @param  RspQryFundStockChangeField    查询资券变动流水
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQryFundStockChange(RspUser *pUser, RspQryFundStockChangeField*pRspQryFundStockChange, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief  查询银证转账记录
        /// @param  pUser                           客户信息
        /// @param  RspQryBankTransChangeFiled    查询银证转账记录
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQryBankTransChange(RspUser *pUser, RspQryBankTransChangeFiled*pRspQryBankTransChangeFiled, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief  HOTS资金内转查询应答
        /// @param  pUser                                  客户信息
        /// @param  RspQryBankTransChangeInwardFiled       HOTS资金内转查询应答
        /// @param  pErrorInfo                             错误信息回复
        /// @param  reqId                                  请求编号类型
        /// @param  isLast                                 响应结束标记
        virtual void OnRspQryBankTransChangeInward(RspUser *pUser, RspQryBankTransChangeInwardFiled*pRspQryBankTransChangeInwardFiled, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief  股票成本价修改
        /// @param  pUser                               客户信息
        /// @param  pRspModifyStockAveragePriceField    股票成本价修改
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        virtual void OnRspModifyStockAveragePrice(RspUser *pUser, RspModifyStockAveragePriceField*pRspModifyStockAveragePriceField, ErrorInfoField* pErrorInfo, RequestIDType ReqId) {}

        /// @brief    融资融券展期
        /// @param    pUser                                客户信息
        /// @param    pRspMarginTradeExtension            融资融券展期修改
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        virtual void OnRspReceiptExtend(RspUser *pUser, RspReceiptExtendField*pRspMarginTradeExtension, ErrorInfoField* pErrorInfo, RequestIDType reqId) {}

        /// @brief    仓单变更申请拒绝原因查询应答
        /// @param    pUser                                客户信息
        /// @param    pRspQryExtendApplyRejectReason        仓单变更申请拒绝原因查询应答
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQryExtendApplyRejectReason(RspUser *pUser, RspQryExtendApplyRejectReasonField*pRspQryExtendApplyRejectReason, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief    仓单变更申请查询应答
        /// @param    pUser                                客户信息
        /// @param    pRspQryExtendApply                    仓单变更申请查询应答
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQryExtendApply(RspUser *pUser, RspQryExtendApplyField*pRspQryExtendApply, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  查询新股配号
        /// @param  pUser                           客户信息
        /// @param  pRspQryUsrAccountRelation    查询新股配号
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQryIPOMatchNumber(RspUser *pUser, RspQryIPOMatchNumberField* pRspQryIPOMatchNumberField, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief  查询新股中签
        /// @param  pUser                           客户信息
        /// @param  pRspQryUsrAccountRelation    查询新股中签
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void OnRspQryIPOWinningLot(RspUser *pUser, RspQryIPOWinningLotField* pRspQryIPOWinningLotField, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief  大宗委托应答
        /// @param  pUser                                   客户信息
        /// @param  pOnRtnBlockTradeOrderField              大宗委托应答
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        virtual void OnRtnBlockTradeOrder(RspUser *pUser, OnRtnBlockTradeOrderField* pOnRtnBlockTradeOrderField, ErrorInfoField* pErrorInfo, RequestIDType ReqId) {}

        /// @brief  两融大宗撤单应答
        /// @param  pUser                                   客户信息
        /// @param  pOnRtnBlockTradeOrderCancelField             两融大宗撤单应答
        /// @param  pErrorInfo                              错误信息回复
        /// @param  reqId                                   请求编号类型
        virtual void OnRtnBlockTradeOrderCancel(RspUser *pUser, OnRtnBlockTradeOrderCancelField* pOnRtnBlockTradeOrderCancelField, ErrorInfoField* pErrorInfo, RequestIDType ReqId) {}

        /// @brief  大宗委托成交回报
        /// @param  pUser                                   客户信息
        /// @param  pOnRtnBlockTradeExcuteField             大宗委托成交回报
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        virtual void OnRtnBlockTradeExcute(RspUser *pUser, OnRtnBlockTradeExcuteField* pOnRtnBlockTradeExcuteField, ErrorInfoField* pErrorInfo, RequestIDType ReqId) {}

        /// @brief  大宗委托查询应答
        /// @param  pUser                                   客户信息
        /// @param  pRspQryBlockTradeOrderField             大宗委托成交回报
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void RspQryBlockTradeOrder(RspUser *pUser, RspQryBlockTradeOrderField* pRspQryBlockTradeOrderField, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief  大宗成交查询应答
        /// @param  pUser                                   客户信息
        /// @param  pRspQryBlockTradeField                  大宗成交查询回报
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void RspQryBlockTrade(RspUser *pUser, RspQryBlockTradeField* pRspQryBlockTradeField, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief  两融大宗交易当日成交查询应答
        /// @param  pUser                                   客户信息
        /// @param  pRspQryXYBlockTradeField                两融大宗交易当日成交查询回报
        /// @param  pErrorInfo                              错误信息回复
        /// @param  reqId                                   请求编号类型
        /// @param  isLast                                  响应结束标记
        virtual void RspQryXYBlockTrade(RspUser *pUser, RspQryXYBlockTradeField* pRspQryXYBlockTradeField, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief  固定收益平台债券交易指定对手方报价预估结算金额查询应答
        /// @param  pUser                                   客户信息
        /// @param  pRspQryBondTradePredictClrAmtField      债券交易预估结算金额查询回报
        /// @param  pErrorInfo                              错误信息回复
        /// @param  reqId                                   请求编号类型
        virtual void RspQryBondTradePredictClrAmt(RspUser *pUser, RspQryBondTradePredictClrAmtField* pRspQryBondTradePredictClrAmtField, ErrorInfoField* pErrorInfo, RequestIDType ReqId) {}

        /// @brief  港股通委托应答
        /// @param  pUser                                   客户信息
        /// @param  pOnRtnHKOrder                            港股委托应答
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        virtual void OnRtnHKOrder(RspUser *pUser, OnRtnHKOrderField* pOnRtnHKOrderField, ErrorInfoField* pErrorInfo, RequestIDType ReqId) {}

        /// @brief  港股委托成交回报
        /// @param  pUser                                   客户信息
        /// @param  pOnRtnHKTradeField             港股委托成交回报
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        virtual void OnRtnHKTradeExecute(RspUser *pUser, OnRtnHKTradeField* pOnRtnHKTradeField, ErrorInfoField* pErrorInfo, RequestIDType ReqId) {}

        /// @brief  港股通委托查询应答
        /// @param  pUser                                   客户信息
        /// @param  pRspQryHKOrder                         港股委托查询应答
        /// @param  pErrorInfo                                错误信息回复
        /// @param  reqId                                    请求编号类型
        /// @param  isLast                                    响应结束标记
        virtual void RspQryHKOrder(RspUser *pUser, RspQryHKOrderField* pRspQryHKOrderField, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief  港股实时成交查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryHKTrade                        港股成交查询应答
        /// @param  pErrorInfo                            错误信息回复
        /// @param  reqId                                请求编号类型
        /// @param  isLast                                响应结束标记
        virtual void RspQryHKTrade(RspUser* pUser, RspQryHKTradeField* pRspQryHKTradeField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  港股汇率查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryHKExchangeCurrencyField        港股汇率查询应答
        /// @param  pErrorInfo                            错误信息回复
        /// @param  reqId                                请求编号类型
        /// @param  isLast                                响应结束标记
        virtual void RspQryHKExchangeCurrency(RspUser* pUser, RspQryHKExchangeCurrencyField* pRspQryHKExchangeCurrencyField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  港股最小价差信息查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryHKSpreadingInfoField           港股最小价差信息查询应答
        /// @param  pErrorInfo                            错误信息回复
        /// @param  reqId                                请求编号类型
        /// @param  isLast                                响应结束标记
        virtual void RspQryHKSpreadingInfo(RspUser* pUser, RspQryHKSpreadingInfoField* pRspQryHKSpreadingInfoField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  港股非交易委托/撤单应答
        /// @param  pUser                                   客户信息
        /// @param  pOnRtnHKNonTradeOrderField              港股非交易委托/撤单应答
        /// @param  pErrorInfo                              错误信息回复
        /// @param  reqId                                   请求编号类型
        virtual void OnRtnHKNonTradeOrder(RspUser *pUser, OnRtnHKNonTradeOrderField* pOnRtnHKNonTradeOrderField, ErrorInfoField* pErrorInfo, RequestIDType ReqId) {}

        /// @brief    IPO缴款预冻结资金解冻应答
        /// @param    pUser                                客户信息
        /// @param    pRspIPOFundUnFrozenField             IPO缴款预冻结资金解冻应答
        /// @param    pErrorInfo                           错误信息回复
        /// @param    reqId                                请求编号类型
        virtual void OnRspIPOFundUnFrozen(RspUser *pUser, RspIPOFundUnFrozenField* pRspIPOFundUnFrozenField, ErrorInfoField* pErrorInfo, RequestIDType reqId) {}

        /// @brief    两地保证金调拨应答
        /// @param    pUser                                客户信息
        /// @param    pRspMarginTransferField              两地保证金调拨应答
        /// @param    pErrorInfo                           错误信息回复
        /// @param    reqId                                请求编号类型
        virtual void RspMarginTransfer(RspUser *pUser, RspMarginTransferField* pRspMarginTransferField, ErrorInfoField* pErrorInfo, RequestIDType reqId) {}

        /// @brief    保证金可调拨额度试算应答
        /// @param    pUser                                客户信息
        /// @param    pRspMarginTransferField              保证金可调拨额度试算应答
        /// @param    pErrorInfo                           错误信息回复
        /// @param    reqId                                请求编号类型
        virtual void RspQryMarginTransferLimit(RspUser *pUser, RspQryMarginTransferLimitField* pRspMarginTransferField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast){}

        /// @brief    保证金历史累计调拨数量查询应答
        /// @param    pUser                                客户信息
        /// @param    pRspMarginTransferField              保证金历史累计调拨数量查询应答
        /// @param    pErrorInfo                           错误信息回复
        /// @param    reqId                                请求编号类型
        virtual void RspQryMarginTransferChange(RspUser *pUser, RspQryMarginTransferChangeField* pRspMarginTransferField, ErrorInfoField* pErrorInfo, RequestIDType reqId){}

        /// @brief    资金推送
        /// @param    pUser                                客户信息
        /// @param    pFundField                           资金信息
        /// @param    pErrorInfo                           错误信息回复
        /// @param    reqId                                请求编号类型
        virtual void OnRtnFund(RspUser* pUser, FundField* pFundField, ErrorInfoField* pErrorInfoField, RequestIDType reqId) {}

        /// @brief    持仓推送
        /// @param    pUser                                客户信息
        /// @param    pHoldField                           持仓信息
        /// @param    pErrorInfo                           错误信息回复
        /// @param    reqId                                请求编号类型
        virtual void OnRtnHold(RspUser* pUser, HoldField* pHoldField, ErrorInfoField* pErrorInfoField, RequestIDType reqId) {}

        /// @brief    深圳债券成交申报行情查询应答
        /// @param    pUser                                客户信息
        /// @param    pRspQryBondDeclareQuotesField        深圳债券成交申报行情查询应答
        /// @param    pErrorInfo                           错误信息回复
        /// @param    reqId                                请求编号类型
        virtual void OnRspQryBondDeclareQuotes(RspUser* pUser, RspQryBondDeclareQuotesField* pRspQryBondDeclareQuotesField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief    要约收购人信息查询应答
        /// @param    pUser                                客户信息
        /// @param    pRspQryTendererInfoField             要约收购人信息查询查询应答
        /// @param    pErrorInfo                           错误信息回复
        /// @param    reqId                                请求编号类型
        virtual void OnRspQryTendererInfo(RspUser* pUser, RspQryTendererInfoField* pRspQryTendererInfoField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief    RTGS日间入账流水查询应答
        /// @param    pUser                                客户信息
        /// @param    pRspQryRTGSField                     RTGS日间入账流水查询应答
        /// @param    pErrorInfo                           错误信息回复
        /// @param    reqId                                请求编号类型
        virtual void OnRspQryRTGS(RspUser* pUser, RspQryRTGSField* pRspQryRTGSField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  质押库明细查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQrySMortgage                    质押库明细应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        /// @param  isLast                              响应结束标记
        virtual void RspQryMortgage(RspUser* pUser, RspQryMortgageField* pRspQrySMortgage, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief    OTC委托应答
        /// @param    pUser                                客户信息
        /// @param    pOnRtnOTCOrderField                  OTC委托应答
        /// @param    pErrorInfo                           错误信息回复
        /// @param    reqId                                请求编号类型
        virtual void OnRtnOTCOrder(RspUser *pUser, OnRtnOTCOrderField* pOnRtnOTCOrderField, ErrorInfoField* pErrorInfo, RequestIDType reqId){}

        /// @brief    OTC委托成交推送
        /// @param    pUser                                客户信息
        /// @param    pOnRtnOTCOrderField                  OTC委托应答
        /// @param    pErrorInfo                           错误信息回复
        /// @param    reqId                                请求编号类型
        virtual void OnRtnOTCOrderExecution(RspUser *pUser, OnRtnOTCOrderExecutionField* pOnRtnOTCOrderField, RequestIDType reqId) {}

        /// @brief    OTC委托查询应答
        /// @param    pUser                                客户信息
        /// @param    pRspQryOTCOrderField                 OTC委托查询应答
        /// @param    pErrorInfo                           错误信息回复
        /// @param    reqId                                请求编号类型
        virtual void RspQryOTCOrder(RspUser *pUser, RspQryOTCOrderField* pRspQryOTCOrderField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}


        /// @brief    OTC成交查询应答
        /// @param    pUser                                客户信息
        /// @param    pRspQryOTCTradeField                 OTC成交查询应答
        /// @param    pErrorInfo                           错误信息回复
        /// @param    reqId                                请求编号类型
        virtual void RspQryOTCTrade(RspUser* pUser, RspQryOTCTradeField* pRspQryOTCTradeField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  回购融资汇总交易查询应答
        /// @param  pUser                               客户信息
        /// @param  pOnRspRepurchaseCredit              回购融资汇总交易查询应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        /// @param  isLast                              响应结束标记
        virtual void OnRspRepurchaseCredit(RspUser* pUser, OnRspRepurchaseCreditField* pOnRspRepurchaseCredit, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  未购回记录查询应答
        /// @param  pUser                               客户信息
        /// @param  pOnRspQryUnpurchaseRecord           未购回记录查询应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        /// @param  isLast                              响应结束标记
        virtual void OnRspUnpurchasedRecord(RspUser* pUser, OnRspQryUnpurchasedRecordField* pOnRspQryUnpurchasedRecord, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  非交易业务查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryMarginNonTradeOrder          非交易业务查询应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        /// @param  isLast                              响应结束标记
        virtual void RspQryMarginNonTradeOrder(RspUser* pUser, RspQryMarginNonTradeOrderField* pRspQryMarginNonTradeOrder, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  综合类交易委托报单推送
        /// @param  pUser                               客户信息
        /// @param  pCompTradeOrder                     综合类交易委托报单信息
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        virtual void OnRtnCompositeTradeOrder(RspUser* pUser, CompTradeOrderField* pCompTradeOrder, ErrorInfoField* pErrorInfoField, RequestIDType reqId) {}

        /// @brief  综合类交易成交推送
        /// @param  pUser                               客户信息
        /// @param  pCompTradeOrderExec                 综合类交易成交信息
        /// @param  reqId                               请求编号类型
        virtual void OnRtnCompositeTradeOrderExecution(RspUser* pUser, CompTradeOrderExecField* pCompTradeOrderExec, RequestIDType reqId) {}

        /// @brief  综合类交易撤单报单推送
        /// @param  pUser                               客户信息
        /// @param  pCompTradeOrderCancel               综合类交易撤单报单推送信息
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        virtual void OnRtnCompositeTradeOrderCancel(RspUser* pUser, CompTradeOrderCancelField* pCompTradeOrderCancel, ErrorInfoField* pErrorInfo, RequestIDType reqId) {}

        /// @brief  股转大宗委托查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryNqBlockTradeOrder            股转大宗委托查询应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        /// @param  isLast                              响应结束标记
        virtual void RspQryNqBlockTradeOrder(RspUser* pUser, RspQryNqBlockTradeOrderField* pRspQryNqBlockTradeOrder, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  股转大宗成交查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryNqBlockTradeTrade            股转大宗成交查询应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        /// @param  isLast                              响应结束标记
        virtual void RspQryNqBlockTradeTrade(RspUser* pUser, RspQryNqBlockTradeTradeField* pRspQryNqBlockTradeTrade, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  全市场ETF申赎成交查询应答
        /// @param  pUser                           客户信息
        /// @param  pRspQryETFTradeDoneInfo         全市场ETF申赎成交查询应答
        /// @param  pErrorInfo                      错误信息回复
        /// @param  reqId                           请求编号类型
        /// @param  isLast                          响应结束标记
        virtual void OnRspQryETFTradeDoneInfo(RspUser* pUser, RspQryETFTradeDoneInfoField* pRspQryETFTradeDoneInfo, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  报价回购委托报单推送
        /// @param  pUser                               客户信息
        /// @param  pQuoteRepurchaseOrder               报价回购委托报单信息
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        virtual void OnRtnQuoteRepurchaseOrder(RspUser* pUser, OnRtnQuoteRepurchaseOrderField* pQuoteRepurchaseOrder, ErrorInfoField* pErrorInfoField, RequestIDType reqId) {}

        /// @brief  报价回购委托成交推送
        /// @param  pUser                               客户信息
        /// @param  pQuoteRepurchaseOrderExec           报价回购委托成交信息
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        virtual void OnRtnQuoteRepurchaseOrderExecution(RspUser* pUser, OnRtnQuoteRepurchaseOrderExecField* pQuoteRepurchaseOrderExec, RequestIDType reqId) {}

        /// @brief  报价回购撤单推送
        /// @param  pUser                               客户信息
        /// @param  pQuoteRepurchaseOrderCancel         报价回购撤单推送推送信息
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        virtual void OnRtnQuoteRepurchaseOrderCancel(RspUser* pUser, OnRtnQuoteRepurchaseOrderCancelField* pQuoteRepurchaseOrderCancel, ErrorInfoField* pErrorInfo, RequestIDType reqId) {}

        /// @brief  报价回购当日委托查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryQuoteCurrentEntrust          报价回购当日委托查询应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        virtual void RspQryQuoteCurrentEntrust(RspUser* pUser, RspQryQuoteCurrentEntrustField* pRspQryQuoteCurrentEntrust, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  未到期报价回购查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryQuoteRepurchase               未到期报价回购查询应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        virtual void RspQryQuoteRepurchase(RspUser* pUser, RspQryQuoteRepurchaseField* pRspQryQuoteRepurchase, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  报价回购大额提前购回预约查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryQuoteLargeAmtEarlyeRepurchaseSubscrib               报价回购大额提前购回预约查询应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        virtual void RspQryQuoteLargeAmtEarlyeRepurchaseSubscrib(RspUser* pUser, RspQryQuoteLargeAmtEarlyeRepurchaseSubscribField* pRspQryQuoteLargeAmtEarlyeRepurchaseSubscrib, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  报价回购大额提前购回预约撤销查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryQuoteLargeAmtEarlyeRepurchaseSubscribCancel               报价回购大额提前购回预约撤销查询应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        virtual void RspQryQuoteLargeAmtEarlyeRepurchaseSubscribCancel(RspUser* pUser, RspQryQuoteLargeAmtEarlyeRepurchaseSubscribCancelField* pRspQryQuoteLargeAmtEarlyeRepurchaseSubscribCancel, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  报价回购分段利率查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryQuoteGradeRate               报价回购分段利率查询应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        virtual void RspQryQuoteGradeRate(RspUser* pUser, RspQryQuoteGradeRateField* pRspQryQuoteGradeRate, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  报价回购产品查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryQuoteProd					报价回购产品查询应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        virtual void RspQryQuoteProd(RspUser* pUser, RspQryQuoteProdField* pRspQryQuoteProd, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  协议回购委托应答报单推送
        /// @param  pUser                               客户信息
        /// @param  pOnRtnXYHGTradeOrderField           协议回购委托应答报单信息
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        virtual void OnRtnXYHGTradeOrder(RspUser *pUser, OnRtnXYHGTradeOrderField* pOnRtnXYHGTradeOrderField, ErrorInfoField* pErrorInfo, RequestIDType ReqId) {}

        /// @brief  协议回购成交推送
        /// @param  pUser                               客户信息
        /// @param  pOnRtnXYHGTradeExcuteField          协议回购成交信息
        /// @param  reqId                               请求编号类型
        virtual void OnRtnXYHGTradeExcute(RspUser *pUser, OnRtnXYHGTradeExcuteField* pOnRtnXYHGTradeExcuteField, RequestIDType ReqId) {}

        /// @brief  协议回购撤单报单推送
        /// @param  pUser                               客户信息
        /// @param  pOnRtnXYHGTradeOrderCancelField     协议回购撤单报单推送信息
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        virtual void OnRtnXYHGTradeOrderCancel(RspUser *pUser, OnRtnXYHGTradeOrderCancelField* pOnRtnXYHGTradeOrderCancelField, ErrorInfoField* pErrorInfo, RequestIDType ReqId) {}

        /// @brief  协议回购委托查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryXYHGTradeOrderField          协议回购委托查询应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        /// @param  isLast                              响应结束标记
        virtual void RspQryXYHGTradeOrder(RspUser *pUser, RspQryXYHGTradeOrderField* pRspQryXYHGTradeOrderField, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief  协议回购成交查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryXYHGTradeField               协议回购成交查询应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        /// @param  isLast                              响应结束标记
        virtual void RspQryXYHGTrade(RspUser *pUser, RspQryXYHGTradeField* pRspQryXYHGTradeField, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief    协议回购非公开行情查询应答
        /// @param    pUser                                客户信息
        /// @param    pOnRspQryXYHGUnopenQuatationField    协议回购非公开行情查询查询应答
        /// @param    pErrorInfo                           错误信息回复
        /// @param    reqId                                请求编号类型
        /// @param    isLast                               响应结束标记
        virtual void OnRspQryXYHGUnopenQuatation(RspUser *pUser, OnRspQryXYHGUnopenQuatationField* pOnRspQryXYHGUnopenQuatationField, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief    未结算协议回购查询应答
        /// @param    pUser                                客户信息
        /// @param    pOnRspQryXYHGUnSettleBondField       未结算协议回购查询查询应答
        /// @param    pErrorInfo                           错误信息回复
        /// @param    reqId                                请求编号类型
        /// @param    isLast                               响应结束标记
        virtual void OnRspQryXYHGUnSettleBond(RspUser *pUser, OnRspQryXYHGUnSettleBondField* pOnRspQryXYHGUnSettleBondField, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief  协议回购委托试算查询应答
        /// @param  pUser                                  客户信息
        /// @param  pOnRspQryXYHGTradeForTrialField        协议回购委托试算查询应答
        /// @param  pErrorInfo                             错误信息回复
        /// @param  reqId                                  请求编号类型
        /// @param  isLast                                 响应结束标记
        virtual void OnRspQryXYHGTradeForTrial(RspUser *pUser, OnRspQryXYHGTradeForTrialField* pOnRspQryXYHGTradeForTrialField, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief  超长分包数据查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryCompositeEntrustMemoExField  超长分包数据查询应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        /// @param  isLast                              响应结束标记
        virtual void RspQryCompositeEntrustMemoEx(RspUser *pUser, RspQryCompositeEntrustMemoExField* pRspQryCompositeEntrustMemoExField, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief    协议回购行情扩展备注查询应答
        /// @param    pUser                                客户信息
        /// @param    pOnRspQryXYHGQuatationMemoExField    协议回购行情扩展备注查询应答
        /// @param    pErrorInfo                           错误信息回复
        /// @param    reqId                                请求编号类型
        /// @param    isLast                               响应结束标记
        virtual void OnRspQryXYHGQuatationMemoEx(RspUser *pUser, OnRspQryXYHGQuatationMemoExField* pOnRspQryXYHGQuatationMemoExField, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief  深圳债券成交申报委托明细查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQrySZBondTradeOrderField        深圳债券成交申报委托明细查询应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        /// @param  isLast                              响应结束标记
        virtual void RspQrySZBondTradeOrder(RspUser *pUser, RspQrySZBondTradeOrderField* pRspQrySZBondTradeOrderField, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief  两融大宗委托应答
        /// @param  pUser                               客户信息
        /// @param  pOnRtnXYBlockTradeOrderField        两融大宗委托回报
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        /// @param  isLast                              响应结束标记
        virtual void OnRtnXYBlockTradeOrder(RspUser* pUser, OnRtnXYBlockTradeOrderField* pOnRtnXYBlockTradeOrderField, ErrorInfoField* pErrorInfoField, RequestIDType reqId) {}

        /// @brief  两融大宗成交推送
        /// @param  pUser                                  客户信息
        /// @param  pOnRtnXYBlockTradeOrderExecutionField  两融委托成交回报
        /// @param  pErrorInfo                             错误信息回复
        /// @param  reqId                                  请求编号类型
        virtual void OnRtnXYBlockTradeOrderExecution(RspUser* pUser, OnRtnXYBlockTradeOrderExecutionField* pOnRtnXYBlockTradeOrderExecutionField, RequestIDType reqId) {}

        /// @brief  两融大宗委托查询应答
        /// @param  pUser                               客户信息
        /// @param  RspQryXYBlockTradeOrderField        两融大宗委托查询回报
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        /// @param  isLast                              响应结束标记
        virtual void RspQryXYBlockTradeOrder(RspUser *pUser, RspQryXYBlockTradeOrderField* pRspQryXYBlockTradeOrderField, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief  债券交易参数查询应答
        /// @param  pUser                               客户信息
        /// @param  pOnRspQryBondTradeParamField        债券交易参数查询应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        /// @param  isLast                              响应结束标记
        virtual void OnRspQryBondTradeParam(RspUser *pUser, OnRspQryBondTradeParamField* pOnRspQryBondTradeParamField, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief    综合行情查询应答
        /// @param    pUser                             客户信息
        /// @param    pOnRspQryXYQuotationField         综合行情查询应答
        /// @param    pErrorInfo                        错误信息回复
        /// @param    reqId                             请求编号类型
        virtual void OnRspQryXYQuotation(RspUser* pUser, OnRspQryXYQuotationField* pOnRspQryXYQuotationField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief    大宗减持受限股份信息查询应答
        /// @param    pUser                             客户信息
        /// @param    pOnRspQryReduceStockField        大宗减持受限股份信息查询应答
        /// @param    pErrorInfo                        错误信息回复
        /// @param    reqId                             请求编号类型
        virtual void OnRspQryReduceStock(RspUser* pUser, OnRspQryReduceStockField* pOnRspQryReduceStockField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief    场外基金T0最大取现金额查询应答
        /// @param    pUser                                客户信息
        /// @param    pOnRspQryOfsT0MaxWithdrawAmtField    场外基金T0最大取现金额查询应答
        /// @param    pErrorInfo                           错误信息回复
        /// @param    reqId                                请求编号类型
        virtual void OnRspQryOfsT0MaxWithdrawAmt(RspUser *pUser, OnRspQryOfsT0MaxWithdrawAmtField* pOnRspQryOfsT0MaxWithdrawAmtField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  股权激励自主行权委托/撤单应答
        /// @param  pUser                                   客户信息
        /// @param  pOnRspGQJLOrderField                    股权激励自主行权委托/撤单应答
        /// @param  pErrorInfo                              错误信息回复
        /// @param  reqId                                   请求编号类型
        virtual void OnRspGQJLOrder(RspUser *pUser, RspGQJLOrderField* pOnRspGQJLOrderField, ErrorInfoField* pErrorInfo, RequestIDType ReqId) {}

        /// @brief  查询同名子账户可内转资金回报
        /// @param  pUser                                   客户信息
        /// @param  pOnRspSubAccountTransFundField                    同名子账户可内转资金应答
        /// @param  pErrorInfo                              错误信息回复
        /// @param  reqId                                   请求编号类型
        virtual void OnRspSubAccountTransFund(RspUser *pUser, OnRspSubAccountTransFundField* pOnRspSubAccountTransFundField, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}

        /// @brief    同名资金内转回报
        /// @param    pUser                             客户信息
        /// @param    pOnRspTransSubInsideFundField     同名资金内转回报
        /// @param    pErrorInfo                        错误信息回复
        /// @param    reqId                             请求编号类型
        virtual void OnRspTransSubInsideFund(RspUser* pUser, OnRspTransSubInsideFundField *pOnRspTransSubInsideFundField, ErrorInfoField* pErrorInfo, RequestIDType reqId) {}

        /// @brief    查询同名内转流水回报
        /// @param    pUser                             客户信息
        /// @param    pOnRspQryTransSubInsideFundField  查询同名内转流水回报
        /// @param    pErrorInfo                        错误信息回复
        /// @param    reqId                             请求编号类型
        virtual void OnRspQryTransSubInsideFund(RspUser* pUser, OnRspQryTransSubInsideFundField* pOnRspQryTransSubInsideFundField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief  综合类委托应答报单推送
        /// @param  pUser                               客户信息
        /// @param  pOnRtnCompositeEntrustOrderField    综合类委托应答报单信息
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        virtual void OnRtnCompositeEntrustOrder(RspUser *pUser, OnRtnCompositeEntrustOrderField* pOnRtnCompositeEntrustOrderField, ErrorInfoField* pErrorInfo, RequestIDType ReqId) {}

        /// @brief  综合类撤单应答报单推送
        /// @param  pUser                               客户信息
        /// @param  pOnRtnCompositeEntrustCancelField   综合类撤单应答报单信息
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        virtual void OnRtnCompositeEntrustCancel(RspUser *pUser, OnRtnCompositeEntrustCancelField* pOnRtnCompositeEntrustCancelField, ErrorInfoField* pErrorInfo, RequestIDType ReqId) {}

        /// @brief  综合类委托查询应答
        /// @param  pUser                               客户信息
        /// @param  pRspQryCompositeEntrustOrderField   综合类委托查询应答
        /// @param  pErrorInfo                          错误信息回复
        /// @param  reqId                               请求编号类型
        /// @param  isLast                              响应结束标记
        virtual void RspQryCompositeEntrustOrder(RspUser *pUser, RspQryCompositeEntrustOrderField* pRspQryCompositeEntrustOrderField, ErrorInfoField* pErrorInfo, RequestIDType ReqId, bool isLast) {}


        /// @brief    查询客户资金同步比率回报
        /// @param    pUser                             客户信息
        /// @param    pRspQryFundSynRateField           查询客户资金同步比率回报
        /// @param    pErrorInfo                        错误信息回复
        /// @param    reqId                             请求编号类型
        virtual void RspQryFundSynRate(RspUser* pUser, RspQryFundSynRateField* pRspQryFundSynRateField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief    修改客户资金同步比率回报
        /// @param    pUser                             客户信息
        /// @param    pRspModFundSynRateField           修改客户资金同步比率回报
        /// @param    pErrorInfo                        错误信息回复
        /// @param    reqId                             请求编号类型
        virtual void RspModFundSynRate(RspUser* pUser, RspModFundSynRateField* pRspModFundSynRateField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}

        /// @brief    查询客户担保品设置回报
        /// @param    pUser                             客户信息
        /// @param    pRspQryCustStockConvertRateField  查询客户担保品设置回报
        /// @param    pErrorInfo                        错误信息回复
        /// @param    reqId                             请求编号类型
        virtual void RspQryCustGuaranteeSetting(RspUser* pUser, RspQryCustGuaranteeSettingField* pRspQryCustGuaranteeSettingField, ErrorInfoField* pErrorInfo, RequestIDType reqId, bool isLast) {}
    };
}
